<?php

/**
 * 文章控制器
 */
class ArticleController extends AuthController {

	private $model;
	public function __init() {
		$this -> model = K('Article');
	}
	
	
	/**
	 * 
	 */
	 
	 public function truedel(){
	 	//获得文章ID	
	 	$aid = Q('get.aid');
		//删除文章标题表
		if($this->model->trueDel($aid)){
			$this->ajax(1);
		}else{
			$this->ajax(0);
		}
		
		
	 }
	
	
	
	
	
	
	/**
	 * 显示 文章列表页面
	 */
	public function _show($status = 0) {

		//要关联两张表一个是文章标题表一个是分类表，查询出文章表is_reclcye不为0的数据//所有文章总数
		$total = M('article') -> field('aid') -> where('is_recycle=' . $status) -> count();

		//使用分页类
		$page = new Page($total, 14, 10);
		//所有文章
		$arts = $this -> model -> findAllArticle($page -> limit(), $status);
		//分配分页样式
		$this -> assign('page', $page -> show(1));
		$this -> assign('arts', $arts);

	}

	/**
	 * 显示所有文章列表
	 */
	public function index() {
		$this -> _show();
		$this -> display();
	}

	/**
	 * 将文章的is_recycle的值设置为1
	 */
	public function ajaxisrecycle() {
		//获得要删除的那个文章的id
		$aid = Q('get.aid');
		$status = Q('get.st');
		//将他的is_recycle设置为1
		$isok = M('article') -> save(array('aid' => $aid, 'is_recycle' => $status));
		if ($isok) {
			$this -> ajax(1);
		} else {
			$this -> ajax(0);
		}

	}

	/**
	 * 打印了分类树结构
	 */
	public function _tree() {
		//将分类显示出来
		$cates = M('category') -> field('cid,cname,pid') -> all();

		$treeCates = Data::tree($cates, 'cname', 'cid', 'pid');
		//分配分类
		$this -> assign('treecates', $treeCates);
	}

	/**
	 * 打印出标签集
	 */
	public function _tag() {
		//查询出所有的标签
		$allTag = K('Tag') -> findAllTag();

		//将颜色class 放到数组中
		foreach ($allTag as $k => $v) {
			//给随机的颜色
			//将颜色赋值到数组中
			$v['bgcolor'] = $this -> randColor();
			$allTag[$k] = $v;
		}
		//分配标签
		$this -> assign('tags', $allTag);
	}

	/**
	 * 添加文章页面
	 */
	public function add() {

		$this -> _tree();
		$this -> _tag();

		$this -> display();
	}

	/**
	 * 将文章写入数据库
	 *  'title' => string '1111' (length=4)
	 'author' => string '1' (length=1)
	 'category_cid' => string '6' (length=1)
	 'digest' => string '1' (length=1)
	 'attr' =>
	 array (size=1)
	 0 => string '缃《' (length=6)
	 'tag_tid' =>
	 array (size=1)
	 0 => string '10' (length=2)
	 'keywords' => string '1' (length=1)
	 'description' => string '1' (length=1)
	 'content' => string '<p>1<br/></p>' (length=13)
	 */
	public function addart() {
		if (IS_POST) {
			$this -> thumb();

			if ($this -> model -> addArticle($_POST['content'])) {
				$this -> success('添加文章成功啦~!');
			} else {
				$this -> error($this -> model -> error);
			}
		}
	}

	/**
	 * 图片上传方法
	 */
	public function thumb($a = 'add') {
		if ($a == 'add') {
			//如果没有上传图片那么默认给一张图片
			if ($_FILES['thumb']['error'] == 4) {
				Q('post.thumb', STATIC_PATH . 'Img/default.jpg');
			} else {
				$upload = new Upload();
				//获得上传后的新文件名
				$upFileName = current($upload -> upload());

				//再将这个文件制作成缩略图
				$img = new Image();
				$thumb = $img -> thumb($upFileName['path'], '', 118, 78, 6);
				//				echo $thumb;die;
				Q('post.thumb', $thumb);

			}
		}else{
			//如果没有上传图片那么默认给一张图片
			if ($_FILES['thumb']['error'] == 4) {
				Q('post.thumb','');
			} else {
				$upload = new Upload();
				//获得上传后的新文件名
				$upFileName = current($upload -> upload());
				//再将这个文件制作成缩略图
				$img = new Image();
				//删除原来的图片
//				unlink($upFileName['path']);
				$thumb = $img -> thumb($upFileName['path'], $upFileName['path'], 118, 78, 6);
				//				echo $thumb;die;
				Q('post.thumb', $thumb);

			}
		}

	}

	/**
	 *  编辑显示方法
	 */
	public function edit() {
		$aid = Q('get.aid');
		//显示树状结构
		$this -> _tree();
		//显示所有标签
		$this -> _tag();
		//标签表的内容查询出来
		//		var_dump($this->model->findArtInfo($aid));
		//将文章相应的标签查询出来
		
		$artTags = M('article_tag') -> where("article_aid=$aid") -> select();
		//将这个文章相应标签多维数组组合为一个一维数组
		$tagArr = array();
		foreach ($artTags as $tag) {
			$tagArr[] = $tag['tag_tid'];
		}
		if (count($artTags) > 0) {
			$this -> assign('chktag', $tagArr);
		}
		$this -> assign('artContent', $this -> model -> findArtInfo($aid));
		$this -> display();
	}

	/**
	 * 文章更新方法
	 */
	public function update() {
		if (IS_POST) {
			$this -> thumb('update');
//			var_dump(Q('post.'));die;
			if ($this -> model -> updateArr($_POST['content'])) {
				$this -> success('修改成功', U('index'));
			} else {
				$this -> error('修改失败');
			}
		}

	}

	/**
	 * 随机颜色
	 */
	private function randColor() {
		$color = '#';
		for ($i = 0; $i < 3; $i++) {
			$color .= dechex(mt_rand(200, 240));
		}
		return $color;
	}

	/**
	 * 文章回收站
	 */
	public function recycle() {
		//显示已经被删除的文章
		$this -> _show(1);
		$this -> display();
	}

}
